using System.Collections.Generic;
using System.IO;

namespace Mbs.Modularity.AddIns
{
    public interface IAddInTree
    {
        IEnumerable<IAddIn> AddIns { get; }
        IAddInNode RootNode { get; }

        void Install(string addInFile);
        void Install(Stream addInStream);
        void Install(IAddIn addIn);
        void Uninstall(IAddIn addIn);

        IAddIn GetAddIn(string addInName);
        bool Exists(string path);
        IAddInNode Get(string path);
        IEnumerable<IAddInNode> FindAllByAddInName(string addInName);
    }
}
